与Arduino使用
快速开始
方糖摄像头入网流程,请参考基础使用中的——快速上手
库导入
在后面的教程里使用的是小喵的arduino主控Rosbot,自带一些板载设备。无需在外接模块。但这也需要导入相关软件库驱动。
- 软件库下载👆
- 根据图示进入库管理
- 选择刚才下载的文件,将他们添加
wifi遥控小车
简述
wifi模块收到无线指令“K2”时,会将数据转发到串口,从而实现无线遥控小车
案例实现
遥控模式
考虑到遥控机器人场景实用,且需求量大。所以小喵特地给摄像头制作了一个遥控模式
参考快速开始的网络配置部分,再次打开config.json文件,将此处修改为remoteControl
注意:不要把引号删了
接线
程序
- 复制以下代码到arduino ide
#include "KittenBot.h"
KittenBot kb;
String inputString = "";
boolean stringComplete = false;
void setup() {
Serial.begin(115200);
kb.init();
}
void loop() {
if (Serial.available()) {
char c = Serial.read();
if (c != '\r') {
if (c == '\n') {
stringComplete = true;
} else {
inputString += c;
}
if (stringComplete) {
Serial.println(inputString);
if (inputString == "CMD_UP") {
kb.motorSetSpeed(0, 255);
kb.motorSetSpeed(1, 255);
} else if (inputString == "CMD_DOWN") {
kb.motorSetSpeed(0, -255);
kb.motorSetSpeed(1, -255);
} else if (inputString == "CMD_LEFT") {
kb.motorSetSpeed(0, -255);
kb.motorSetSpeed(1, 255);
} else if (inputString == "CMD_RIGHT") {
kb.motorSetSpeed(0, 255);
kb.motorSetSpeed(1, -255);
} else if (inputString == "CMD_FUNC1") {
kb.motorSetSpeed(0, 0);
kb.motorSetSpeed(1, 0);
}
inputString = "";
stringComplete = false;
}
}
}
}
- 参考下图配置开发板rosbot的信息
- 上传代码
- 在浏览器输入192.168.0.135:80
注意:此处的ip地址需要修改为你自己的摄像头ip,注意输入法设置,小数点和冒号都要是英文的 - 之后你可以通过键盘上下左右还有数字1和2来触发按键,如果是手机的话你也直接可以点击页面中的按钮
环境监测
简述
本实验是把摄像头作为WIFI模块,要求把IOT的数据传回 iot平台
使用温湿度模块以及亮度模块,可以获取植物附件的环境状态。这么做会有一个问题。
那就是只有人在附近的时候才能看到数据,十分鸡肋。
现在可以通过方糖摄像头模块的联网功能将数据上传到iot服务器,我们就可以随时随地的监测植物状态了!
关于iot平台
在后续的案例中,会需要连接iot服务器进行数据传输。如果你有自己的准备可以忽略这个步骤。如果你没有iot话题,这里建议大家使用🌏小喵的iot平台
有关小喵的iot平台的,请参考小喵的🌏iot平台介绍
案例实现
(如果你实现了上一个wifi遥控小车的案例,则需要把模式改回指令处理模式commandProcessing)
接线
程序
参考上一个案例,设置设备属性、上传代码
#include "DHT.h"
#define DHTPIN 11
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
delay(1000);
dht.begin();
Serial.print("K20 iot.kittenbot.cn sugar-cam \r\n");
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
return;
}
Serial.print("K23 /zzyhum "+String(h)+" \r\n");//
delay(2000);
Serial.print("K23 /zzytemp "+String(t)+" \r\n");
delay(2000);
Serial.print("K23 /zzylight "+String(analogRead(A3))+" \r\n");
delay(2000);
}
数据展示
音频播放
简述
使用摄像头模块播放内置音频的功能,可以在相应的场合出现音频指示,在没有显示屏的情况下可以更好地辅助操作。
案例实现
音频导入
- 有sd卡
- 使用读卡器将音频拷贝进sd卡,音频文件名建议全英文、无特殊符号
- 之后将sd卡插入摄像头模块
- 然后按下复位键重启摄像头模块
- 之后在设置sd卡音频路径的时候,需要在前面加上sd,例如 K15 sd/test.mp3 \r\n
- 无sd卡
- 使用usb连接摄像头模块,之后电脑会出现一个u盘
- 直接将音频文件拷贝进其中即可,请勿删改u盘的其他文件!
- 使用usb连接摄像头模块,之后电脑会出现一个u盘
接线
程序
String myFiles[3] = {
"test1.mp3",
"test2.mp3",
"test3.mp3"
};
const int buttonPin = 11;
int currentFile = 0;
void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
Serial.print("K15 "+myFiles[currentFile]+" \r\n");
delay(1000);
currentFile++;
if (currentFile >= 3) {
currentFile = 0;
}
}
}